package com.cn.wanxi.servlet;

import com.cn.wanxi.dao.CompanyDao;
import com.cn.wanxi.model.CompanyModel;
import com.cn.wanxi.model.NavModel;
import com.cn.wanxi.service.CompanyService;
import com.cn.wanxi.service.NavService;
import com.cn.wanxi.service.NewsService;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 界面层，
 * 和页面相对应，
 * 一个页面一个servlet,页面所有的数据都是通过servlet来
 * 需要将数据返回到页面上：
 * 需要用到servlet的页面转发
 * 既然要用到servlet就必须用到servlet的jar包
 * <p>
 * <p>
 * 三层
 * 页面控制层 servlet  得到返回值，返回页面
 * 业务逻辑层 service   封装需要的数据对象，主要处理逻辑关系
 * 数据实现层 dao    保存数据来源
 * <p>
 * web项目数据流程 页面数据来源于servlet --service--dao  各做各的事情
 */
@WebServlet("/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

//        jsp的四大作用域
//        page页面对象，request请求对象，application应用程序对象，session会话对象
//        如果一个对象里面有很多属性，都要返回到页面，这里不推荐直接返回字符串，而是一个对象
//        req.setAttribute("logo", logo);//key -value
//        req.setAttribute("phone", phone);
//        req.setAttribute("net", net);
        CompanyService companyService = new CompanyService();//逻辑层
        req.setAttribute("companyModel", companyService.getCompanyModel());
//        加载导航信息

//        String[] titles = {};
//        String[] hrefs = {};
//        NavModel[] navModels = {new NavModel(), new NavModel()};
//        req.setAttribute("titles", titles);
//   如果要拿到数组的值，则需要遍历

//        req.setAttribute("hrefs", hrefs);
//        导航数据的封装应该在service服务逻辑层里面
        NavService navService = new NavService();
//        Object  所有引用類型的超类
//        Object
        req.setAttribute("navModels", navService.getNavModels());

//新闻信息
        NewsService newsService = new NewsService();
        req.setAttribute("newsModels", newsService.getHomeService());
        req.getRequestDispatcher("/jsp/home.jsp").forward(req, resp);//页面转发，需要转发地址
    }
}
